home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1997-10-09 | 9.1 KB | 245 lines | [ TEXT/JyWs]
<HTML> <HEAD> <TITLE>JavaScript Cookies Demo</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- Beginning of JavaScript /* Cookies Demo By Jerry Aman, Optima System, July 28, 1996. Cookie Functions written by Bill Dortch, hIdaho Design. Part of the PageSpinner distribution. We will not be held responsible for any unwanted effects due to the usage of this script or any derivative. No warrantees for usability for any specific application are given or implied. You are free to use and modify this script, if credits are kept in the source code */ var cookieVisitID = 'my_LastVisit'; var cookieNumVisitID = 'my_NumVisits'; // Change 'my_LastVisit' and 'my_NumVisits' // to something unique for // the current page, or else it // won't work correctly if other uses // this script! var gLastVisit; var gNumVisits; SetLastVisit(); // Execute when loading page function GetLastVisit () { if ( gLastVisit == "") { return "Welcome to this site!"; } else { var oldVisitDate = new Date(gLastVisit); return "Welcome back, your last visit to this site was on " + gLastVisit +".<BR>You have been here " + gNumVisits + " time" +(gNumVisits>1 ? "s" :"") +" before." } } function SetLastVisit (name, value) { var newVisitDate = new Date(); var expDate = new Date (); var numVisits = 0; // The expDate is the date when the cookie should // expire, we will keep it for a year expDate.setTime( expDate.getTime() + (365 * 24 * 60 * 60 * 1000) ); // Info about last visit if (GetCookie (cookieVisitID) != null) gLastVisit = GetCookie (cookieVisitID); else gLastVisit = ""; if (GetCookie (cookieNumVisitID) != null) gNumVisits = GetCookie (cookieNumVisitID); else gNumVisits = 0; // Use eval() to convert a string to a number numVisits = eval(gNumVisits) +1; // Store info about this visit SetCookie( cookieVisitID, newVisitDate, expDate); SetCookie( cookieNumVisitID, numVisits, expDate); } // --------------------------------------------------------------- // Cookie Functions - Second Helping (21-Jan-96) // Written by: Bill Dortch, hIdaho Design <BDORTCH@NETW.COM> // The following functions are released to the public domain. // // The Second Helping version of the cookie functions dispenses with // my encode and decode functions, in favor of JavaScript's new built-in // escape and unescape functions, which do more complete encoding, and // which are probably much faster. // // The new version also extends the SetCookie function, though in // a backward-compatible manner, so if you used the First Helping of // cookie functions as they were written, you will not need to change any // code, unless you want to take advantage of the new capabilities. // // The following changes were made to SetCookie: // // 1. The expires parameter is now optional - that is, you can omit // it instead of passing it null to expire the cookie at the end // of the current session. // // 2. An optional path parameter has been added. // // 3. An optional domain parameter has been added. // // 4. An optional secure parameter has been added. // // For information on the significance of these parameters, and // and on cookies in general, please refer to the official cookie // spec, at: // // http://www.netscape.com/newsref/std/cookie_spec.html // // // "Internal" function to return the decoded value of a cookie // function getCookieVal (offset) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } // // Function to return the value of the cookie specified by "name". // name - String object containing the cookie name. // returns - String object containing the cookie value, or null if // the cookie does not exist. // function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } // // Function to create or update a cookie. // name - String object object containing the cookie name. // value - String object containing the cookie value. May contain // any valid string characters. // [expires] - Date object containing the expiration data of the cookie. If // omitted or null, expires the cookie at the end of the current session. // [path] - String object indicating the path for which the cookie is valid. // If omitted or null, uses the path of the calling document. // [domain] - String object indicating the domain for which the cookie is // valid. If omitted or null, uses the domain of the calling document. // [secure] - Boolean (true/false) value indicating whether cookie transmission // requires a secure channel (HTTPS). // // The first two parameters are required. The others, if supplied, must // be passed in the order listed above. To omit an unused optional field, // use null as a place holder. For example, to call SetCookie using name, // value and path, you would code: // // SetCookie ("myCookieName", "myCookieValue", null, "/"); // // Note that trailing omitted parameters do not require a placeholder. // // To set a secure cookie for path "/myPath", that expires after the // current session, you might code: // // SetCookie (myCookieVar, cookieValueVar, null, "/myPath", null, true); // function SetCookie (name, value) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } // Function to delete a cookie. (Sets expiration date to current date/time) // name - String object containing the cookie name // function DeleteCookie (name) { var exp = new Date(); exp.setTime (exp.getTime() - 1); // This cookie is history var cval = GetCookie (name); document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); } // End of JavaScript --> </SCRIPT> </HEAD> <BODY BGCOLOR=FFFFFF TEXT=000000> <H1>JavaScript Cookies Example</H1> <B>This page contains a JavaScript that stores information about the last time a reader visited the page</B> <P> Please note that JavaScript is currently only available in Netscape Navigator 2.0 or later, and in Internet Explorer for MacOS version 3.0.1 or later. <FONT COLOR="931B15">Do not assume that all in your audience are using a JavaScript enabled browser.</FONT> <HR> <P> These JavaScripts use Persistent Client State HTTP Cookies to store information about the last time a reader visited the page. A cookie is a mechanism that allows information to be stored across multiple sessions. <P> In this example two cookies are stored containing information about last date and number of times the reader has visited a page (containing these cookies). Since the cookies are stored on the readers hard disk you - the author - will not be able to extract information about the reader. <P> Cookies can also be used for many other purposes, such as keeping readers preferences for viewing a site, storing passwords, implementing a shopping cart for online business or for keeping track of access rights for a specific reader viewing pages created on the fly on the server. <HR> <B>Here is an example:</B> <P> Hello, <SCRIPT LANGUAGE="JavaScript">document.write(navigator.userAgent);</SCRIPT>! <P> <SCRIPT LANGUAGE="JavaScript">document.write (GetLastVisit())</SCRIPT> <P> Reload this page to see the text above updated. <P> <HR> <B>How to use:</B><BR> Rename the constants <CODE>'my_LastVisit'</CODE> and '<CODE>my_NumVisits'</CODE> to something unique for the current page (maybe use some part ot the url) or else it won't work correctly if other uses this script! These constants are located at the beginning of the HEAD section in this file. It is important to do this! <P> You may want to change the text inside function <CODE>GetLastVisit()</CODE> to something more appropriate for your site. <P> Finally use this code inside the BODY section to display the information in the browser: <PRE><SCRIPT LANGUAGE="JavaScript">document.write (GetLastVisit())</SCRIPT></PRE> <P> </BODY> </HTML>